/**处理成含children的树状数据 */
export function tranListToTreeData(list, value, depth = 1) {
  // 如果深度超过 3，停止递归
  if (depth > 3) return [];

  const res = list
    .filter((item) => item.parentId === value)
    .map((item) => {
      const node = {
        id: item.id,
        label: item.name,
      };

      // 递归调用时增加深度
      const children = tranListToTreeData(list, item.id, depth + 1);

      // 只有在 children 存在且深度不超过 3 时才添加子节点
      if (children.length > 0) {
        node.children = children;
      }

      return node;
    });

  return res;
}


/**拼接成当前机构以及下属机构的id数组，转化成以逗号分割的字符串 */
export function getAgencyIds(list, agencyId) {
  let newarr = [];

  // 递归查找函数，增加 depth 参数
  function findAgencyIds(id, depth) {
    // 如果深度超过 3，停止递归
    if (depth > 3) return;

    // 遍历所有数据
    list.forEach((item) => {
      // 如果当前项的ID等于传入的id，或者当前项的parentId等于传入的id
      if (item.id === id || item.parentId === id) {
        // 如果当前项的ID未在结果数组中（防止重复）
        if (!newarr.includes(item.id)) {
          newarr.push(item.id); // 添加当前ID到结果数组
          findAgencyIds(item.id, depth + 1); // 递归查找子机构，并增加深度
        }
      }
    });
  }

  // 从传入的 agencyId 开始查找，初始深度为 1
  findAgencyIds(agencyId, 1);

  return newarr.join(",");
}


